如果您現(xiàn)在正在閱讀本文,那么您已經(jīng)使用了客戶端-服務(wù)器模型,甚至沒有意識(shí)到。您(作為客戶)請求了由網(wǎng)絡(luò)服務(wù)器提供給您的資源(即本網(wǎng)頁)。這是現(xiàn)代通信的流行架構(gòu),其中數(shù)字?jǐn)?shù)據(jù)由服務(wù)器提供給客戶端。另一種模式稱為點(diǎn)對點(diǎn)或“P2P”,依賴于相互連接的計(jì)算機(jī)來共享數(shù)據(jù)。與 P2P 模型不同,客戶端-服務(wù)器架構(gòu)依賴于連接到網(wǎng)絡(luò)的主服務(wù)器機(jī)器或一組機(jī)器,通常位于數(shù)據(jù)中心。客戶端或連接到 Web 或本地網(wǎng)絡(luò)的普通計(jì)算機(jī)發(fā)送數(shù)據(jù)包以從服務(wù)器請求數(shù)據(jù)。
當(dāng)服務(wù)器收到這些請求時(shí),它們可以做以下三件事之一:接受數(shù)據(jù)包,拒絕或“丟棄”數(shù)據(jù)包,或靜默終止連接。依靠使用“端口”來控制數(shù)據(jù)流,客戶端和服務(wù)器必須在正確的端口上相互發(fā)送請求。大多數(shù)防火墻設(shè)置為接收不同類型的請求。例如,大多數(shù)使用超文本傳輸??協(xié)議或“HTTP”的服務(wù)器將只接受通過端口 80 或 443 對其數(shù)據(jù)的請求。如果您將數(shù)據(jù)包從客戶端發(fā)送到正確配置的服務(wù)器到另一個(gè)端口,服務(wù)器通常會(huì)靜默丟棄發(fā)送的數(shù)據(jù)包。
1. 網(wǎng)絡(luò)服務(wù)器
Web 服務(wù)器為您現(xiàn)在正在查看的站點(diǎn)提供支持。這種類型的服務(wù)器專注于向客戶端提供 Web 內(nèi)容。
Web 服務(wù)器只接受來自客戶端的“GET”和“POST”請求(以及其他動(dòng)詞)。
“GET”請求是客戶端只想檢索信息而沒有任何信息要提交給服務(wù)器的情況。
另一方面,“POST”請求是當(dāng)客戶端確實(shí)有信息要與服務(wù)器共享并期望得到響應(yīng)時(shí)。例如,在 Web 服務(wù)器上填寫表單并單擊提交按鈕是從客戶端到服務(wù)器的“POST”請求。
Web 服務(wù)器本質(zhì)上通常是“無頭”的。這是為了保留服務(wù)器上的內(nèi)存并確保有足夠的內(nèi)存為服務(wù)器上的操作系統(tǒng)和應(yīng)用程序供電。
“無頭”意味著它不像傳統(tǒng)的家用計(jì)算機(jī)那樣運(yùn)行,而只是提供內(nèi)容。這些服務(wù)器的管理員只能通過命令行終端連接到它們。
請記住,這些類型的服務(wù)器可以像您的家用計(jì)算機(jī)一樣運(yùn)行任何類型的應(yīng)用程序。
它們也可以在任何操作系統(tǒng)上運(yùn)行,只要它們遵守網(wǎng)絡(luò)的一般“規(guī)則”。
現(xiàn)代 Web 應(yīng)用程序通常在一系列層上運(yùn)行,從服務(wù)器端腳本和處理數(shù)據(jù)的程序(例如 PHP、ASP.NET 等)開始,到對數(shù)據(jù)進(jìn)行編程的客戶端腳本(例如 Javascript)結(jié)束顯示。
然后,Web 瀏覽器會(huì)相應(yīng)地呈現(xiàn)內(nèi)容以顯示您現(xiàn)在正在閱讀的頁面。
一些流行的網(wǎng)絡(luò)服務(wù)器包括 Microsoft IIS、Apache、Nginx 等。
一些用于 Web 服務(wù)器的端口:HTTP 的端口 80(未加密)和 HTTP 的端口 443(加密)。
2. 數(shù)據(jù)庫服務(wù)器
數(shù)據(jù)庫服務(wù)器通常與另一種類型的服務(wù)器協(xié)同工作。這種服務(wù)器的存在只是為了將數(shù)據(jù)分組存儲(chǔ)。
有無數(shù)種方法可以根據(jù)不同的理論來保存數(shù)據(jù)。一種更常見的類型被稱為“SQL”或“結(jié)構(gòu)化查詢語言”。
數(shù)據(jù)庫程序員可以使用數(shù)據(jù)庫語言的腳本在這些服務(wù)器上創(chuàng)建數(shù)據(jù)庫。
Web 應(yīng)用程序通常將其服務(wù)器端組件連接到數(shù)據(jù)庫服務(wù)器以在用戶請求時(shí)獲取數(shù)據(jù)。
一個(gè)好的做法是在不同的機(jī)器上擁有網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器應(yīng)該獨(dú)立存在的原因是為了安全。
如果黑客能夠訪問主 Web 服務(wù)器而不是數(shù)據(jù)庫服務(wù)器,他們將能夠輕松檢索或修改存儲(chǔ)在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。
一些流行的數(shù)據(jù)庫服務(wù)器包括 MySQL、MariaDB、Microsoft SQL、Oracle 數(shù)據(jù)庫等。
用于數(shù)據(jù)庫服務(wù)器的一些端口:端口 3306(MySQL、MariaDB)、端口 1433(MS-SQL)、端口 1521(Oracle DB)。
3. 電子郵件服務(wù)器
電子郵件服務(wù)器通常在“SMTP”或“簡單郵件傳輸協(xié)議”上運(yùn)行。較新的郵件服務(wù)器還運(yùn)行其他可能的協(xié)議,但 SMTP 仍然是主要協(xié)議。
電子郵件服務(wù)器為郵件服務(wù)提供動(dòng)力。這些服務(wù)器本身只是將電子郵件從一個(gè)客戶端接收到另一個(gè)客戶端并將數(shù)據(jù)轉(zhuǎn)發(fā)到另一臺(tái)服務(wù)器。
通過 SMTP 發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)得到簡化,因此某些信息(如 Web 格式)通常會(huì)在電子郵件交易中丟失。
電子郵件服務(wù)器的現(xiàn)代方法通常將它們與 Web 服務(wù)器配對。這允許用戶擁有一個(gè)“網(wǎng)絡(luò)客戶端”,以圖形方式顯示網(wǎng)頁上的數(shù)據(jù)。一些較新的 Web 應(yīng)用程序甚至可以在不安裝任何東西的情況下模擬家用計(jì)算機(jī)電子郵件客戶端。
一些用于電子郵件服務(wù)器的端口:端口 25 (SMTP)、端口 587 (安全 SMTP)、端口 110 (POP3)
4. 網(wǎng)絡(luò)代理服務(wù)器
Web 代理服務(wù)器可以在多種協(xié)議中的一種上運(yùn)行,但它們都做一件共同的事情。
它們接收用戶請求,對其進(jìn)行過濾,然后代表用戶采取行動(dòng)。最流行的網(wǎng)絡(luò)代理服務(wù)器類型旨在繞過學(xué)校和組織的網(wǎng)絡(luò)過濾器。
由于網(wǎng)絡(luò)流量全部通過一個(gè)尚未被阻止的 IP 地址和網(wǎng)站,因此用戶可以通過這些過濾器訪問被禁止的網(wǎng)站。
不太流行的類型是組織代理服務(wù)器。這具有相同的效果,但通常由組織授權(quán)。
它獲取用戶的網(wǎng)絡(luò)流量,通常將其記錄下來以供稍后評估,然后將其發(fā)送到 Internet。
這將用戶的流量集中在一起,因此無法公開區(qū)分一臺(tái)計(jì)算機(jī)與另一臺(tái)計(jì)算機(jī)。
這是由組織有意完成的,以防止用戶成為目標(biāo),并且通常能夠檢查、緩存和分析發(fā)送和接收的數(shù)據(jù)包。
一些用于 Web 代理服務(wù)器的端口:端口 8080、8888 等
5. DNS 服務(wù)器
DNS 服務(wù)器或“域名服務(wù)”服務(wù)器用于將域名轉(zhuǎn)換為其相應(yīng)的 IP 地址。
當(dāng)您輸入域名并按 Enter 鍵時(shí),您的瀏覽器會(huì)引用此服務(wù)器。這個(gè)想法是用戶不必記住 IP 地址,組織可以有一個(gè)合適的名稱。
通常,Internet 服務(wù)提供商 (ISP) 為其用戶提供 DNS 服務(wù)器。但是,也有許多組織免費(fèi)提供此查找服務(wù)(例如流行的 IP 為 8.8.8.8 的 Google DNS 服務(wù)器)。
當(dāng)用戶創(chuàng)建新域名時(shí),DNS 服務(wù)器也會(huì)被竊聽。DNS 服務(wù)器在分層基礎(chǔ)上運(yùn)行,因此有一些比其他服務(wù)器更“權(quán)威”的服務(wù)器。
域名在一臺(tái)上級 DNS 服務(wù)器上注冊,其他下級 DNS 服務(wù)器引用該服務(wù)器。通常通過一個(gè)需要 24 到 48 小時(shí)的過程,這種注冊會(huì)在世界范圍內(nèi)傳播。
用于 DNS 服務(wù)器的端口:端口 53(TCP 和 UDP)。
6. FTP 服務(wù)器
FTP 服務(wù)器或“文件傳輸協(xié)議”服務(wù)器有一個(gè)目的:托管用戶之間的文件交換。
默認(rèn)情況下,這些服務(wù)器不提供任何類型的加密,因此有許多安全版本的協(xié)議經(jīng)常在其位置使用(例如sFTP,它是基于安全 SSH 協(xié)議的 FTP)。
這種類型的服務(wù)器允許用戶在通過 FTP 客戶端驗(yàn)證后上傳文件或下載文件。用戶還可以瀏覽服務(wù)器的文件并根據(jù)需要下載單個(gè)文件。
一些用于 FTP 服務(wù)器的端口:用于 FTP 的端口 20,21 或用于 sFTP 的端口 22。
7. 文件服務(wù)器
文件服務(wù)器不同于 FTP 服務(wù)器。這種類型的服務(wù)器更現(xiàn)代,通常能夠?qū)⒕W(wǎng)絡(luò)文件“映射”到驅(qū)動(dòng)器上。這意味著用戶可以使用家庭計(jì)算機(jī)的文件瀏覽器查看文件夾。
這種形式的服務(wù)器的主要優(yōu)點(diǎn)是用戶可以上傳和下載共享文件。文件權(quán)限由管理員控制。
通常文件服務(wù)器存在于 Windows Active Directory 環(huán)境或 Linux 環(huán)境中的企業(yè)網(wǎng)絡(luò)中。
8. DHCP 服務(wù)器
DHCP 服務(wù)器使用動(dòng)態(tài)主機(jī)通信協(xié)議 (DHCP) 來配置客戶端計(jì)算機(jī)的網(wǎng)絡(luò)設(shè)置。
網(wǎng)絡(luò)中的 DHCP 服務(wù)器不必為大型網(wǎng)絡(luò)中的客戶端計(jì)算機(jī)手動(dòng)配置靜態(tài) IP 地址和其他網(wǎng)絡(luò)設(shè)置,而是將這些網(wǎng)絡(luò)設(shè)置動(dòng)態(tài)配置到 LAN 計(jì)算機(jī)。
用于 DHCP 服務(wù)器的端口:端口 UDP 67。